package com.ican.util;

import java.util.regex.Pattern;

public class ValidateUtil {

    private final static Pattern string2num = Pattern.compile("^\\d+$");
    /**
     * <p>判断字符串是否全是数字</p>
     * <p>str == null || str.length() < 1   return false</p>
     * <p>其余返回数字匹配（^\\d+$）结果</p>
     * @param  str  需要验证的字符串
     * @return true 是数字，false  不是数字
     */
    public static boolean stringIsNum(String str){
        if(str == null || str.length() < 1){
            return false;
        }
        return string2num.matcher(str).matches();
    }
    
    private final static Pattern string2Int = Pattern.compile("^-?\\d+$");
    /**
     * <p>判断字符串是否整形数字</p>
     * <p>str == null || str.length() < 1   return false</p>
     * <p>其余返回数字匹配（^-?\\d+$）结果</p>
     * @param  str  需要验证的字符串
     * @return true 是整形数字，false  不是整形数字
     */
    public static boolean stringIsInt(String str){
        if(str == null || str.length() < 1){
            return false;
        }
        return string2Int.matcher(str).matches();
    }
    
    private final static Pattern string2Float = Pattern.compile("^(-?\\d+)(\\.\\d+)?$");
    /**
     * <p>判断字符串是否浮点型数字</p>
     * <p>str == null || str.length() < 1   return false</p>
     * <p>其余返回数字匹配（^(-?\\d+)(\\.\\d+)?$）结果</p>
     * @param  str  需要验证的字符串
     * @return true 是浮点型数字，false  不是浮点型数字
     */
    public static boolean stringIsFloat(String str){
        if(str == null || str.length() < 1){
            return false;
        }
        return string2Float.matcher(str).matches();
    }
    
}
